home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / doom / suckmods.zip / SUCKMODS.ZIP / suck05 / src / reg.qc < prev    next >
Text File  |  1997-05-09  |  3KB  |  143 lines

  1. // Nick registration.  By Suck.
  2.  
  3. float (string somename) isregistered =
  4. {
  5.     // Here you list all of the registered names.
  6.     if ((somename != "SAMPLEREGNAME") && (somename != "SAMPLEREGNAME2"))
  7.         return 2;
  8.  
  9.     // Here list them with the accompanying codes.  You should only
  10.     // use digits 1 through 8.
  11.     if ((somename == "SAMPLEREGNAME") && (self.regcode != 12345))
  12.         return 0;
  13.     else if ((somename == "SAMPLEREGNAME2") && (self.regcode != 54321))
  14.         return 0;
  15.     else
  16.         return 1;
  17. };
  18.  
  19. void () checkreg =
  20. {
  21.     local float registered;
  22.  
  23.  
  24.     registered=isregistered(self.netname);
  25.  
  26.     if (registered != 0)
  27.     {
  28.         self.regstart = 0;
  29.         return;
  30.     }
  31.  
  32.     if (self.needsreg != 2)
  33.     {
  34.         self.needsreg = 1;
  35.         if ((self.regstart == 0) || (self.regstart > (time + 30)))
  36.             self.regstart = time;
  37.     }
  38.  
  39.     if (self.needsreg == 1)
  40.     {
  41.         self.msg_center = 1;
  42.         clientmsg(self, "You are using a registered name.\n\nPlease enter your authorization code.\nYou have twenty seconds.\n\nImpulse 98 to enter your code.\n");
  43.     }
  44.  
  45.     if ((((time - self.regstart) > 30) || (self.regtries > 2))
  46.     && (self.regstart != 0))
  47.     {
  48.         sprint(self, "\n\nRegistration error.  Goodbye.\n");
  49.         self.netname = "unconnected";
  50.         stuffcmd(self, "disconnect\n");
  51.     }
  52.  
  53.     if (self.needsreg == 2)
  54.     {
  55.         self.msg_center = 1;
  56.         clientmsg(self, "Please enter the five digit\nauthorization code.\n");
  57.     }
  58. };
  59.  
  60. void () regimpulse =
  61. {
  62.     if (isregistered(self.netname)==2)
  63.     {
  64.         self.msg_center = 1;
  65.         clientmsg(self, "Your nick does not require registration.\n");
  66.         return;
  67.     }
  68.     else if (isregistered(self.netname) == 1)
  69.         return;
  70.  
  71.     self.needsreg = 2;
  72.     self.msg_center = 1;
  73.     clientmsg(self, "Please enter the five digit\nauthorization code.\n");
  74.     self.status_time = time;
  75.     self.regcodenum = 0;
  76.     self.regcode = 0;
  77. };
  78.  
  79. void (string s) setregname =
  80. {
  81.     local string l;
  82.     l=s;
  83.     self.regname = l;
  84. };
  85.  
  86. void () checkregcode =
  87. {
  88.     local float r;
  89.     r = 0;
  90.  
  91.     r=isregistered(self.netname);
  92.  
  93.     if (r == 1)
  94.     {
  95.         bprint(self.netname);
  96.         bprint(" is REGISTERED.\n");
  97.         self.needsreg = 3;
  98.         self.regstart = 0;
  99.         self.regtries = 0;
  100.     }
  101.     else
  102.     {
  103.         sprint(self, "Incorrect.  Please try again.\n");
  104.         self.regcodenum = 0;
  105.         self.regcode = 0;
  106.         self.regtries = self.regtries + 1;
  107.     }
  108. };
  109.  
  110. void () checkregimpulse =
  111. {
  112.     local float q, p, r;
  113.     local string s;
  114.  
  115.     if (self.needsreg != 2)
  116.         return;
  117.  
  118.     if ((self.impulse < 1) || (self.impulse > 9))
  119.         return;
  120.  
  121.     q = self.regcodenum;
  122.     self.regcode = self.regcode * 10;
  123.     self.regcode = self.regcode + self.impulse;
  124.  
  125.     s=ftos(self.regcode);
  126.     sprint(self, s);
  127.     sprint(self, "\n");
  128.  
  129.     self.regcodenum = self.regcodenum + 1;
  130.  
  131.     if (self.regcodenum == 5)
  132.         checkregcode();
  133. };
  134.  
  135. // In ClientPreThink, check occasionally to see if they are registered to
  136. // their current name or not.  If not, start a 20 second timer, warning them
  137. // to register.  If they don't register, kick them.
  138. //
  139. // To register, they trigger an impulse, and their registered nick is locked
  140. // in.  The impulse requests a 5 digit registration code.  If incorrect,
  141. // change their name and mark them as unregistered.  If correct, mark 'em as
  142. // registered, but keep checking in case they change their name.
  143.